package com.hpeu_01.day0107.homework;

import lombok.AllArgsConstructor;
import lombok.Data;
import org.junit.Test;

/**
 * 3.某IT公司有多名员工，按照员工负责的工作不同，进行了部门的划分(研发部员工、維护部员工)。
 * 研发部根据所需研发的内容不同，又分为JvaEE工程师、Android 工程师;维护部根据所需维护的内容不同，
 * 又分为网络维护工程师、硬件维护工程师。。
 * 公司的每名员工都有他们自己的员工编号、姓名，并要做它们所负责的工作。。
 * ●工作内容。
 * ■JavaEE工程师:员工号为xxx的xxx员工，正在研发淘宝网站。
 * ■Android工程师:员工号为xxx的xxx员工,正在研发淘宝手机客户端软件。
 * ■网络维护工程师: 员工号为xxx的xxx员工，正在检查网络是否畅通。
 * ■硬件维护工程师: 员工号为xxx的xxx员工，正在修复打印机。
 * 请根据描述，完成员工体系中所有类的定义,并指定类之间的继承关系。进行xx工程师类的对象创建，完成工作方法的调用
 */
//员工类
@Data
public abstract class Staff {
    private int id;
    private String name;

    public Staff(int id, String name) {
        this.id = id;
        this.name = name;
    }
    public abstract void work();
}
//研发部员工
class Research extends Staff{

    public Research(int id, String name) {
        super(id, name);
    }

    @Override
    public void work() {

    }

}
//維护部员工
class  Maintenance extends Staff{

    public Maintenance(int id, String name) {
        super(id, name);
    }

    @Override
    public void work() {
    }
}
//JavaEE工程师
class JavaEE extends Research{

    public JavaEE(int id, String name) {
        super(id, name);
    }
    @Override
    public void work() {
        System.out.println("JavaEE工程师:员工号为"+this.getId()+"的"+this.getName()+"员工，正在研发淘宝网站。");
    }
}
//Android 工程师
class Android extends Research{
    public Android(int id, String name) {
        super(id, name);
    }
    @Override
    public void work() {
        System.out.println("Android工程师:员工号为"+this.getId()+"的"+this.getName()+"员工，正在研发淘宝手机客户端软件。");
    }
}
//网络维护工程师
class Internet extends Maintenance{

    public Internet(int id, String name) {
        super(id, name);
    }
    @Override
    public void work() {
        System.out.println("网络维护工程师:员工号为"+this.getId()+"的"+this.getName()+"员工，正在检查网络是否畅通。");
    }
}
//硬件维护工程师
class Hardware extends Maintenance{
    public Hardware(int id, String name) {
        super(id, name);
    }
    @Override
    public void work() {
        System.out.println("硬件维护工程师:员工号为"+this.getId()+"的"+this.getName()+"员工，正在修复打印机。");
    }
}
class StaffDome{

    public static void main(String[] args) {
        JavaEE javaEE = new JavaEE(111,"后裔");
        javaEE.work();
        Android android = new Android(222,"鲁班");
        android.work();
        Internet internet = new Internet(333,"百里守约");
        internet.work();
        Hardware hardware = new Hardware(444,"妲己");
        hardware.work();
    }
}